/*
 * acooly.cn Inc.
 * Copyright (c) 2016 All Rights Reserved.
 * create by zhangpu 
 * date:2016年4月5日
 *
 */
package com.acooly.module.openapi.client.provider.fuyou.support;

import com.google.common.collect.Maps;

import java.util.Map;

/**
 * @author zhangpu
 */
public class FuyouRespCodes {

	static Map<String, String> data = Maps.newHashMap();

	static {
		data.put("0000", "交易成功");
		data.put("1000", "取系统跟踪号失败");
		data.put("1001", "无此用户");
		data.put("1002", "用户未激活");
		data.put("1003", "用户已锁定");
		data.put("1004", "用户已关闭");
		data.put("1005", "用户已禁用");
		data.put("1006", "未知的用户类型");
		data.put("1007", "用户未指定");
		data.put("1008", "实名信息不合法");
		data.put("1009", "取授权号失败");
		data.put("1014", "无效卡号(无此卡号)");
		data.put("1042", "无此账户");
		data.put("1051", "资金不足");
		data.put("1101", "无此商户");
		data.put("1102", "商户（或机构）已关闭");
		data.put("1103", "商户已锁定");
		data.put("2000", "账户状态正常");
		data.put("2001", "无此账户");
		data.put("2002", "账户未激活");
		data.put("2003", "账户已锁定");
		data.put("2004", "账户已冻结");
		data.put("2005", "账户已销户");
		data.put("2006", "账户已过期");
		data.put("2007", "账户已挂失");
		data.put("2008", "账户状态不正常");
		data.put("2010", "分户状态正常");
		data.put("2011", "找不到分户");
		data.put("2012", "分户未激活");
		data.put("2013", "分户已锁定");
		data.put("2014", "分户已冻结");
		data.put("2015", "分户已销户");
		data.put("2016", "分户已过期");
		data.put("2017", "分户已挂失");
		data.put("2018", "分户状态不正常");
		data.put("2019", "账户币种与交易币种不符");
		data.put("2020", "未指定分户");
		data.put("2030", "贷记账户状态正常");
		data.put("2031", "无此贷记账户");
		data.put("2032", "贷记账户未激活");
		data.put("2033", "贷记账户已锁定");
		data.put("2034", "贷记账户已冻结");
		data.put("2035", "贷记账户已销户");
		data.put("2036", "贷记账户已过期");
		data.put("2037", "贷记账户已挂失");
		data.put("2038", "贷记账户状态不正常");
		data.put("2039", "借贷记账记不属于同一个机构");
		data.put("2040", "借记账户不属于发起交易的机构");
		data.put("2041", "贷记账户不属于发起交易的机构");
		data.put("2101", "账号长度非法");
		data.put("2102", "账号检验失败");
		data.put("2103", "账户查询密码未设置");
		data.put("2104", "账户支付密码未设置");
		data.put("2105", "查询密码错误");
		data.put("2106", "支付密码错误");
		data.put("2107", "查询密码错误次数超限");
		data.put("2108", "支付密码错误次数超限");
		data.put("2109", "未知的密码类型");
		data.put("3001", "功能暂不支持");
		data.put("3002", "未知的交易代码");
		data.put("3003", "验证MAC失败");
		data.put("3004", "不支持的交易");
		data.put("3005", "禁止账户使用的交易");
		data.put("3006", "禁止连接机构进行的交易");
		data.put("3007", "无法确定交易账户的分户");
		data.put("3011", "网关类交易金额超过上限");
		data.put("3012", "金额无效");
		data.put("3013", "账户未转结余额小于0");
		data.put("3014", "未转结余额不足（小于交易金额）");
		data.put("3015", "账户冻结余额小于0");
		data.put("3016", "已冻结余额不足（小于交易金额）");
		data.put("3017", "可用余额小于0");
		data.put("3018", "可用余额不足");
		data.put("3019", "交易金额小于下限");
		data.put("3020", "账户总余额不为0");
		data.put("3021", "账户总余额不足");
		data.put("3022", "交易金额不足以支付手续费");
		data.put("3023", "账户可用余额小于「交易金额+手续费」");
		data.put("3024", "作业类交易金额超过上限");
		data.put("3101", "找不到原交易(或原交易不成功)");
		data.put("3102", "原交易不成功");
		data.put("3103", "原交易已冲正");
		data.put("3104", "原交易已撤消");
		data.put("3105", "原交易已完成");
		data.put("3106", "原交易已冻结");
		data.put("3107", "原交易已解冻");
		data.put("3108", "原交易金额不符");
		data.put("3109", "原交易账号不符");
		data.put("3110", "找不到原始授权交易");
		data.put("3111", "原交易清算日期非法");
		data.put("3112", "原交易不是清算交易");
		data.put("3120", "不需要记授权历史记录（参数错误）");
		data.put("3121", "与原授权交易商户不匹配");
		data.put("3122", "原授权交易已全部完成");
		data.put("3123", "交易卡号不匹配");
		data.put("3124", "交易金额超过可完成（解冻/撤消）的金额");
		data.put("3125", "交易金额与原授权金额不一致");
		data.put("3126", "终端号不一致");
		data.put("3127", "不在同一清算日内");
		data.put("3201", "清分记账失败");
		data.put("3251", "提现账户未指定");
		data.put("3252", "找商户附加信息错");
		data.put("3253", "提现账户用法错误(24域)");
		data.put("3271", "清分超时");
		data.put("3272", "记账超时");
		data.put("4001", "找不到指定的账户产品");
		data.put("4002", "不允许开户机构使用的账户产品");
		data.put("4003", "找不到指定账户产品的BIN号");
		data.put("4004", "找不到指定科目的BIN号（或该科目不允许开分户）");
		data.put("4005", "某一BIN号的账户号资源已用完");
		data.put("4006", "记客户账号表出错");
		data.put("4007", "记客户内部账号表出错");
		data.put("4008", "记基本账户表出错");
		data.put("4009", "账户产品已过期，不能使用");
		data.put("4010", "企业用户不能开对私账户");
		data.put("4011", "个人用户不能开对公账户");
		data.put("4012", "记客户账户密码失败");
		data.put("4013", "个人客户账户已存在");
		data.put("5001", "session超时");
		data.put("5002", "验签失败");
		data.put("5110", "用户名或密码错误");
		data.put("5017", "修改用户信息时未做任何修改");
		data.put("5018", "根据地区代码和行别找不到对应支行");
		data.put("5019", "数据校验失败");
		data.put("5029", "调用交易查询接口过于频繁");
		data.put("5137", "账户信息不能修改");
		data.put("5138", "系统异常");
		data.put("5239", "商户不存在");
		data.put("5343", "用户已开户");
		data.put("5344", "账务系统开户失败");
		data.put("5345", "商户流水号重复");
		data.put("5346", "商户流水号不存在");
		data.put("5347", "与商户系统日期不一致");
		data.put("5348", "交易用户不存在");
		data.put("5349", "找不到原交易");
		data.put("5350", "指令提交模式只支持富友余额支付");
		data.put("5351", "商户提现流水号重复");
		data.put("5352", "未找到该商户交易记录");
		data.put("5353", "接收FAS报文出现异常");
		data.put("5354", "FAS报文验签失败");
		data.put("5355", "发送FAS通讯出现异常");
		data.put("5356", "该卡号已认证");
		data.put("5357", "该卡号已经受理且认证通过");
		data.put("5358", "该卡号已经受理,但尚未认证通过");
		data.put("5359", "该卡号尚未签约");
		data.put("5460", "发送日切通知失败");
		data.put("5836", "不允许信用卡注册");
		data.put("5837", "卡号和行别不一致");
		data.put("5850", "已经存在相同银行卡号注册的用户");
		data.put("5851", "已经存在相同证件号注册的用户");
		data.put("5852", "实名验证失败");
		data.put("5853", "商户IP不允许访问");
		data.put("5854", "协议库验证日期超过7天");
		data.put("5855", "该手机号绑定卡号超过2张");
		data.put("5856", "无权限访问该接口");
		data.put("5857", "实名验证失败,当日总验证次数超限");
		data.put("5891", "用户已开户");
		data.put("9000", "未知的操作方式，参数错误");
		data.put("9001", "未知的取流水号方式");
		data.put("9002", "找不到连接机构");
		data.put("9003", "连接机构已关闭");
		data.put("9004", "连接机构非法");
		data.put("9005", "未知的查找原交易方式");
		data.put("9006", "未知的余额检查类型");
		data.put("9007", "未知的交易日志更新方式");
		data.put("9008", "未知的授权历史日志更新方式");
		data.put("9009", "未知的原交易日志更新方式");
		data.put("9010", "未知的原授权历史日志更新方式");
		data.put("9011", "未知的原始交易数据用法");
		data.put("9012", "未知的账户资料更新方式");
		data.put("9013", "未知的授权历史日志检查方式");
		data.put("9014", "未知的原交易更新对象");
		data.put("9015", "未知的账户状态检查方式");
		data.put("9016", "系统异常");
		data.put("9701", "内存错误");
		data.put("9801", "数据库错误");
		data.put("9802", "提交数据库事务失败");
		data.put("9803", "数据库SELECT操作失败");
		data.put("9804", "数据库INSERT操作失败");
		data.put("9805", "数据库UPDATE操作失败");
		data.put("9806", "数据库事务回滚失败");
		data.put("9901", "SOTP同步调用失败");
		data.put("9902", "SOTP异步调用失败");
		data.put("5555", "交易确定超时");
		data.put("5556", "用户信息修改期间不能代扣充值或提现");
		data.put("5557", "用户未授权");
		data.put("5098", "订单支付失败，通讯异常");
		data.put("5013", "无此交易权限");
		data.put("5505", "不支持的银行卡");
		data.put("10029", "  金额超限");
		data.put("100016", "金额超限");
		data.put("100017", "余额不足");
		data.put("100029", "金额超限");
		data.put("210001", "发送kbpsDataBean失败");
		data.put("210002", "kbps没有初始化，无法连接");
		data.put("100011", "卡号或者户名不符");
	}

	public static String getMessage(String respCode) {
		return data.get(respCode) == null ? "未知错误" : data.get(respCode);
	}

}
